package com.ktg.mes.wm.service;

import java.sql.Date;
import java.util.List;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ktg.mes.md.domain.MdItem;
import com.ktg.mes.util.LService;;
import com.ktg.mes.wm.domain.WmMaterialStatistics;
import org.apache.ibatis.annotations.Param;

/**
 * 库存实况Service接口
 *
 * @author byteco
 * @date 2022-12-13
 */
public interface IWmMaterialStatisticsService extends LService<WmMaterialStatistics>
{
    /**
     * 查询库存实况
     *
     * @param id 库存实况主键
     * @return 库存实况
     */
    public WmMaterialStatistics getInfo(Long id);

    /**
     * 查询库存实况列表
     *
     * @param entity 库存实况
     * @param page 分页对象
     * @return 库存实况集合
     */
    public IPage<WmMaterialStatistics> queryPageList(WmMaterialStatistics entity, Page<WmMaterialStatistics> page);

    /**
     * 查询库存实况
     *
     * @param entity 库存实况
     * @return 库存实况
     */
    public List<WmMaterialStatistics> queryList(WmMaterialStatistics entity);

    /**
     * 新增库存实况
     *
     * @param entity 库存实况
     * @return 结果
     */
    public void insert(WmMaterialStatistics entity);

    /**
     * 修改库存实况
     *
     * @param entity 库存实况
     * @return 结果
     */
    public boolean update(WmMaterialStatistics entity);

    /**
     * 批量删除库存实况
     *
     * @param recordIds 需要删除的库存实况主键集合
     * @return 结果
     */
    public boolean delete(Long[] recordIds);

    /**
     * 删除库存实况信息
     *
     * @param recordId 库存实况主键
     * @return 结果
     */
    public boolean delete(Long recordId);

    /**
     * 创建和更新 库存数量
     * @param mdItem
     */
    public  void updateOrCreateStockFromStatistics(MdItem mdItem);

    /**
     * 创建和更新 预出库数量
     * @param mdItem
     */
    public  void updateOrCreateWillOutFromStatistics(MdItem mdItem);


    /**
     * 创建和更新 需求数量
     * @param mdItem
     */
    public  void updateOrCreateNeedFromStatistics(MdItem mdItem);

}
